/*
 *  CharGen.h
 *  initiativeTracker
 *
 *  Created by Sam Jaffe on 5/5/12.
 *  Copyright 2012 WPI. All rights reserved.
 *
 */

#pragma once

#include <string>
#include <unordered_map>
#include <xercesc/dom/DOMNamedNodeMap.hpp>
#include "Character.h"

class CharGen {
private:
    unsigned short idn;
    
    std::unordered_map<std::string, NPC*> storedMobs;
    std::unordered_map<std::string, int> mobCounter;
    
public:
    CharGen() : idn(0) {}
    NPC* remake(NPC* c);
    
    Character* createChar();
    
    void account(NPC* c);
    void count(NPC* c);
    void setId(int idn);
    
    Character* decode(xercesc::DOMNamedNodeMap* map);
};
